perm filename DISPLY.FAI[SYS,HE] blob sn#004262 filedate 1972-09-29 generic text, type T, neo UTF8
COMMENT ⊗   VALID 00010 PAGES 
RECORD PAGE   DESCRIPTION
 00001 00001
 00002 00002	TITLE DISPLY  -- DISPLAY PRIMITIVES
 00004 00003	SAIL DECLARATIONS
 00007 00004	
 00008 00005	
 00010 00006	
 00014 00007	SAIL DECLARATIONS
 00016 00008	BEGIN DDCODE
 00021 00009	BEGIN CHRTBL
 00040 00010	↑CHRTBL:	0
 00046 ENDMK
⊗;
TITLE DISPLY  -- DISPLAY PRIMITIVES

OPDEF DPYPOS [XWD 702100,0]
OPDEF DPYSIZ [XWD 702140,0]
OPDEF DPYCLR [XWD 701000,0]
OPDEF UPG [XWD 703000,0]
OPDEF GETLIN [TTYUUO 6,]


EXTERNAL USERERR
A←1
B←2
C←3

SP←16
P←17

INTERNAL DPYSET,AIVECT,AVECT,APT,RIVECT,RVECT,RPT
INTERNAL APOINT,RPOINT,AVECW,AIVECW,RVECW,RIVECW,APOINW,GVECW
INTERNAL LOCATE,DJUMP,DJSR,FIXUP,DPYOUT,HYDPOG,DPYCLR,DPYBIG,DPYBRT,DPYRESET,DPYPARS
INTERNAL CLRBFR,GVECT,DTYO,DPYSST

RV←←6
AV←←106
VIS←←0
EP←←20
INV←←40
SVS←100
SV←2
DEFINE COMPAT(N)<
	POP P,RETURN
	JSP COMP-N>

	POP P,5
	POP P,4
	POP P,3
	POP P,2
	POP P,1
COMP:	JRST @0

;SAIL DECLARATIONS
;EXTERNAL PROCEDURE GVECT(INTEGER X,Y,OP,SIZE,BRT);
;EXTERNAL PROCEDURE AIVECT(INTEGER X,Y)
;EXTERNAL PROCEDURE AVECT(INTEGER X,Y)
;EXTERNAL PROCEDURE APT(INTEGER X,Y)
;EXTERNAL PROCEDURE RIVECT(INTEGER X,Y)
;EXTERNAL PROCEDURE RVECT(INTEGER X,Y)
;EXTERNAL PROCEDURE RPT(INTEGER X,Y)

GVECT:	COMPAT(5)
	DPB C+1,[POINT 3,C,27]
	DPB C+2,[POINT 3,C,24]
	JRST LVC

AIVECT:	MOVEI C,INV+AV
	JRST LV
AVECT:	MOVEI C,VIS+AV
	JRST LV
APOINT:
APT:	MOVEI C,EP+AV
LV:	COMPAT(2)
LVC:	DPB A,[POINT 11,C,10]
	DPB B,[POINT 11,C,21]
LV2:	AOS A,DPYPTR
	MOVEM C,(A)
LV3:	HRLI A,<(<POINT 7,0,35>)>
	MOVEM A,DPYPTR
	HRRZI A,(A)
	CAML A,BUFEND
	JRST DPYOVF
	JRST @RETURN

DPYOVF:	PUSH P,[0]
	PUSH P,[1]	;ALLOW CONTINUE
	PUSH SP,[=19]
	PUSH SP,[POINT 7,[ASCIZ /DPY BUFFER OVERFLOW/]]
	PUSHJ P,USERERR
	SOS DPYPTR
	JRST @RETURN

RIVECT:	MOVEI C,INV+RV
	JRST RVG
RVECT:	MOVEI C,VIS+RV
	JRST RVG
RPOINT:
RPT:	MOVEI C,EP+RV
RVG:	COMPAT(2)
	SKIPE RELFLG#
	JRST LVC
	CAML A,[-SVS]
	CAIL A,SVS
	JRST LVC
	CAML B,[-SVS]
	CAIL B,SVS
	JRST LVC
	ANDCMI C,RV	;CAN CONSTRUCT SHORT VECTOR
	DPB A,[POINT 7,C,22]
	DPB B,[POINT 7,C,29]
	LSH C,20
	ORI C,SV+INV	;MAKE 2ND VECTORE INVISIBLE - ZERO LENGTH
	MOVE A,@DPYPTR
	TLZ A,777774
	CAIE A,(C)	;WAS LAST DPY OUTPUT A SHORT VECTOR WORD WITH 2ND VECTOR ZERO?
	JRST LV2	;NO
	LSH C,-24	;YES, PUT IT THERE
	DPB C,[POINT 16,@DPYPTR,31]
	HRRZ A,DPYPTR
	JRST @RETURN

INTERNAL NORELOPT,RELOPT
NORELOPT:SETOM RELFLG
	POPJ P,

RELOPT:	SETZM RELFLG
	POPJ P,

INTERNAL GVECW,AIVECW,AVECW,APOINW,RIVECW,RVECW,RPOINW
GVECW:	COMPAT(5)
	DPB C+1,[POINT 3,C,27]
	DPB C+2,[POINT 3,C,24]
	JRST LVCW

AIVECW:	MOVEI C,INV+AV
	JRST LVW
AVECW:	MOVEI C,VIS+AV
	JRST LVW
APOINW:	MOVEI C,EP+AV
LVW:	COMPAT(2)
LVCW:	DPB A,[POINT 11,C,10]
	DPB B,[POINT 11,C,21]
	MOVE A,C
	JRST @RETURN

RIVECW:	MOVEI C,INV+RV
	JRST LVW
RVECW:	MOVEI C,VIS+RV
	JRST LVW
RPOINW:	MOVEI C,EP+RV
	JRST LVW

;SAIL DECLARATIONS
;EXTERNAL INTEGER PROCEDURE LOCATE
;EXTERNAL PROCEDURE DTYO(INTEGER CHAR)
;EXTERNAL PROCEDURE DPYSST(STRING S);
;EXTERNAL PROCEDURE DJUMP(INTEGER ADR)
;EXTERNAL PROCEDURE DJSR(INTEGER ADR)
;EXTERNAL PRODECURE FIXUP(INTEGER ADR,VAL)

LOCATE:	HRRZ A,DPYPTR
	POPJ P,

DTYO:	COMPAT(1)
	IDPB A,DPYPTR
	HRRZ A,DPYPTR
	CAML A,BUFEND
	JRST DPYOVF
	JRST @RETURN

DPYSST:	POP SP,1
	POP SP,2
	HRRZS 2		;LENGTH
	JUMPLE 2,SSRET
	ILDB 3,1
	IDPB 3,DPYPTR
	SOJG 2,.-2
SSRET:	HRRZ 1,DPYPTR
	CAML 1,BUFEND
	JRST	[POP P,RETURN
		JRST DPYOVF]
	POPJ P,

DJUMP:	MOVEI C,1B31
	JRST DJ2

DJSR:	MOVEI C,24
DJ2:	COMPAT(1)
	MOVSS A
	ADD C,A
	JRST LV2

FIXUP:	COMPAT(2)
	HRLM B,(A)
	JRST @RETURN

;SAIL DECLARATIONS
;EXTERNAL PROCEDURE DPYOUT(INTEGER PIECE_OF_GLASS)
;EXTERNAL PROCEDURE DPYCLR;
;EXTERNAL PROCEDURE DPYBIG(INTEGER SIZE);
;EXTERNAL PROCEDURE DPYTST;
;EXTERNAL PROCEDURE HYDPOG(INTEGER PIECE_OF_GLASS)
;EXTERNAL PROCEDURE CLRBFR;
;EXTERNAL PROCEDURE DPYSET(INTEGER ARRAY BUF);


; DPYTST TESTS TTY TO SEE IF IT IS A DPY 
; III DPY=0, DATA DISK=1, OTHERWISE=-1
INTERNAL DPYTST,PTYDPY#
;PTYDPY IS AN INTERNAL TO FORCE DPY OUTPUTS TO A DPY INDEPENDENT OF
;THE GETLIN BITS.  0 MEANS USE GETLIN, 1 MEANS NOT DPY, 2 MEANS III, 3 MEANS DD
DPYTST:	SKIPE 1,PTYDPY
	JRST [	SUBI 1,2
		MOVEM 1,DPYFLG
		POPJ P,]
	SETOB 1,DPYFLG
	GETLIN 1
	TLNE 1,421000	;DPY OR PTY ON DPY?
	SETZM DPYFLG	;WE ARE ON A DPY
	TLNE 1,020000	;ON A DATA DISK?
	AOS DPYFLG
	MOVE 1,DPYFLG
	POPJ P,

DPYBIG:	COMPAT(1)
	MOVEI 3,INV+RV	;ZERO LENGTH RELATIVE-INVISIBLE VECTOR
	DPB 1,[POINT 3,3,27]
	JRST LV2

DPYBRT:	COMPAT(1)
	MOVEI 3,INV+RV
	DPB 1,[POINT 3,3,24]
	JRST LV2

DPYCLR:	SKIPLE DPYFLG
	JRST	[PUSH P,[0]
		PUSHJ P,HYDPOG
		JRST .+1]
	SKIPL DPYFLG#
	DPYCLR
	MOVSI 777774
	MOVEM POGWD
	SETZM POGON
	SETZM BUFHD
	POPJ P,

EXTERNAL IIICVT
DPYOUT:	PUSHJ P,DPYPARS
	HRRZ B,DPYPTR
	SUB B,BUFHD
	ADDI B,1
	MOVEM B,BUFHD+1
	JSP POGSUB
	ORM 1,POGON#
SH2:	COMPAT(1)
	DPB A,[POINT 4,SH1,12]
	JUMPL A,FALSE
	SKIPE A,DPYFLG
	JRST		[JUMPL A,FALSE
			MOVE A,BUFHD
			SUBI A,2
			PUSH P,A
			PUSH P,RETURN
			JRST IIICVT]
SH1:	UPG BUFHD
FALSE:	MOVEI A,0
	JRST @RETURN

CLRBFR:	COMPAT(0)
	JRST CLR2

DPYSET:	PUSHJ P,DPYTST
	COMPAT(1)
	ADDI 1,2
	MOVEM 1,BUFHD
	HRRZ 2,-3(1)	;SIZE
	ADDI 2,-3(1)
	MOVEM 2,BUFEND

CLR2:	MOVE A,BUFHD
	MOVEI B,1
	MOVEM B,1(A)
	MOVEI B,2(A)
	HRLI B,1(A)
	BLT B,@BUFEND	;SET DPY BUFFER TO NULL CHARACTER WORDS
	JRST LV3


DPYPARS:	SKIPN 1,BUFHD
	POPJ P,
	MOVE 2,DPYPTR
	MOVEM 2,-2(1)
	MOVEI 2,2(2)
	SUB 2,1
	MOVEM 2,-1(1)
	SUBI 1,2
	POPJ P,

DPYRESET:	COMPAT(1)
	JUMPE 1,@RETURN
	ADDI 1,2
	MOVEM 1,BUFHD
	HRRZ 2,-3(1)
	ADDI 2,-3(1)
	MOVEM 2,BUFEND
	HRRZ 2,-1(1)	;SIZE
	ADDI 2,-2(1)	;START ADR
	MOVE 1,2
	JRST CLR2+1

INTERNAL DPYTYP,TYPLOC
DPYTYP:	PUSHJ P,DPYTST
	COMPAT(3)
	SKIPGE DPYFLG
	JRST @RETURN
	DPYPOS(1)	;POSITION
	DPB 2,[POINT 9,3,26]
	DPYSIZ (3)
	JRST @RETURN

TYPLOC:	PUSHJ P,DPYTST
	COMPAT(2)
	SKIPGE DPYFLG
	JRST @RETURN
	DPYPOS (1)
	SUB 1,2
	IDIVI 1,=46	;23 UNITS PER LINE
	CAIG 1,2
	MOVEI 1,2	;AT LEAST 2 GLITCHES
	LSH 1,=9
	DPYSIZ 2(1)	;2 LINES PER GLITCH
	JRST @RETURN
;SAIL DECLARATIONS
;EXTERNAL PROCEDURE PGSEL(INTEGER POG)
;EXTERNAL PROCEDURE UPGMVM(INTEGER VAL;REFERENCE INTEGER ADR);
;EXTERNAL INTEGER PROCEDURE UPGMVE(REFERENCE INTEGER ADR);

INTERNAL PGSEL,UPGMVM,UPGMVE,GETPOG,RELPOG
INTERNAL ACPOGS,ACCPOG,DACPOG,POGON;
PGSEL:	COMPAT(1)
	JUMPL 1,@RETURN
	SKIPN DPYFLG
	PGSEL (1)
	JRST @RETURN

UPGMVM:	COMPAT(2)
	SKIPN DPYFLG
	UPGMVM 1,(2)
	JRST @RETURN

UPGMVE:	COMPAT(1)
	SKIPN DPYFLG
	UPGMVE 1,(1)
	JRST @RETURN

POGWD:	XWD 777774,0

GETPOG:	MOVE POGWD
	JFFO .+2
	MOVNI 1,1
	ROT (1)
	TLZ 400000
	MOVN 2,1
	ROT(2)
	MOVEM POGWD
	POPJ P,

HYDPOG:
RELPOG:	JSP POGSUB
	ORM 1,POGWD
	ANDCAM 1,POGON
	SETZM BUFHD+1
	SKIPG DPYFLG
	JRST SH2
OPDEF DDOUT [XWD 715140,0]
	DDOUT	[DDCLR
		3]
	SUB P,[XWD 2,2]
	JRST @2(P)

DDCLR:	136004001324
	136004001324
	0

ACPOGS:	MOVS 1,-1(P)
	MOVSM 1,POGON
	SKIPN DPYFLG
	PGIOT 1,(1)
	SUB P,[XWD 2,2]
	JRST @2(P)

POGSUB:	MOVN 2,-1(P)
	MOVSI 1,400000
	LSH 1,(2)
	JRST @0

DACPOG:	JSP POGSUB
	ANDCA 1,POGON
ACPOG2:	MOVSS 1
	JRST ACPOGS+1

ACCPOG:	JSP POGSUB
	OR 1,POGON
	JRST ACPOG2

RETURN:	0

INTERNAL DPYPTR;
DPYPTR:	0
BUFEND:	0
BUFHD:	0
	0

BEGIN DDCODE

A←1
B←2
C←3
D←4
X←1
Y←2
PT←5
N←6
M←7
SPT←10
K←11
P←17

COFFY←2;
CR←15
LF←12

INTERNAL IIIWD;
EXTERNAL LINTAB,PTTAB,GFSIZX,GFSIZY,GFSIZL,X0,Y0,SCALX,SCALY,XCENT,YCENT,LMAR,CHASP,CHSCAL
↑IIIWD:	MOVEI K,1
	MOVE LINTAB
	HRRM LT1
	HRRM LT2

	MOVE PTTAB
	HRRM PT1
	HRRM PT2
	MOVE A,-1(P)
	POP P,-1(P)
	TRNE A,1
	JRST PSTR	;A STRING
	MOVE B,A
	ANDI B,17
	CAIN B,2
	JRST	[PUSH P,A		;SHORT VECTOR WORD
		LSH A,-24
		PUSHJ P,MKSVEC
		POP P,A
		LSH A,-4
		JRST MKSVEC]
	CAIE B,6
	POPJ P,
	LDB C,[POINT 3,A,27]		;LONG VECTOR WORD
	JUMPE C,MKLVEC
	MOVE C,CHSIZS-1(C)		;CHANGE CHARACTER SIZE
	MOVE D,CHSCAL
	FSC D,233
	FMP D,C
	FMP D,CHASP
	FIX D,233000
	MOVEM D,CHSCX#
	MOVE D,CHSCAL
	FSC D,233
	FMP C,D
	FIX C,233000
	MOVEM C,CHSCY#
	IMULI C,=12
	MOVEM D,CHSC12#
	MOVE C,CHSCY
	IMULI C,COFFY
	MOVEM C,COFCC#


MKLVEC:	MOVE C,A
	LDB X,[POINT 11,C,10]
	LDB Y,[POINT 11,C,21]
	TRNE X,2000
	ORCMI X,3777
	TRNE Y,2000
	ORCMI Y,3777
	LDB C,[POINT 3,C,31]
	JRST MKVEC


MKSVEC:	MOVE C,A
	LDB X,[POINT 7,C,26]
	LDB Y,[POINT 7,C,33]
	ANDI C,3
	TRNE X,100
	ORCMI X,77
	TRNE Y,100
	ORCMI Y,77
	
MKVEC:	IMUL X,SCALX
	IMUL Y,SCALY
	MOVNS Y
	TRZE C,4
	JRST	[ADD X,XCENT		;ABSOLUTE VECTOR
		ADD Y,YCENT
		SUB X,X0
		SUB Y,Y0
		JRST .+1]
MKV2:	JRST VTAB(C)

VTAB:	JRST MKLINE			;VISIBLE VECTOR
	JRST MKPTR			;END POINT VECTOR
	JRST	[ADDB X,X0		;INVISIBLE VECTOR
		ADDB Y,Y0
		POPJ P,]
CPOPJ:	POPJ P,				;DO NOTHING


MKLINE:	PUSH P,X
	PUSH P,Y
	MOVM C,X
	MOVM D,Y
	CAMG C,D
	MOVE C,D			;C←MAX(C,D)
	HLRZM C,M;
	AOS M
	IDIV Y,M
	MOVEM Y,DY#
	IDIV X,M
	MOVEM X,DX#
	MOVE X,X0
	MOVE Y,Y0

L:	HLRZ C,X
	HLRZ D,Y
	CAMGE C,GFSIZX
	CAML D,GFSIZY
	JRST L2				;OFF SCREEN
LT1:	MOVE D,LINTAB(D)
PT1:	DPB K,PTTAB(C)
L2:	ADD X,DX
	ADD Y,DY
	SOJGE M,L
	POP P,Y
	POP P,X

MKPTR:	ADDB X,X0
	ADDB Y,Y0

MKPT:	HLRZ C,X
	HLRZ D,Y
	CAMGE C,GFSIZX
	CAML D,GFSIZY
	POPJ P,				;OFF SCREEN
LT2:	MOVE D,LINTAB(D)
PT2:	DPB K,PTTAB(C)
	POPJ P,


CHARS:	0
	0

PSTR:	MOVEM A,CHARS
	MOVE COFCC
	ADDM Y0
	MOVE PT,[POINT 7,CHARS,-1]

CLOOP:	ILDB N,PT
	JUMPE N,	[MOVN COFCC
			ADDM Y0
			POPJ P,]
	CAIN N,CR
	JRST	[MOVE A,LMAR		;CARRIAGE RETURN
		MOVEM A,X0
		JRST CLOOP]
	CAIN A,LF
	JRST	[MOVE A,CHSC12		;LINE FEED
		ADDM A,Y0
		JRST CLOOP]
	HLRZ SPT,CHRTBL(N)
	HRLI SPT,(<POINT 5,0>)
	HRRZ N,CHRTBL(N)
SLOOP:	JUMPLE N,CLOOP
	ILDB C,SPT
	ILDB X,SPT
	ILDB Y,SPT
	TRNE X,20
	ORCMI X,37
	TRNE Y,20
	ORCMI Y,37
	MOVNS Y
	IMUL X,CHSCX
	IMUL Y,CHSCY
	JUMPE C,	[PUSHJ P,MKPTR
			JRST LX1]
	CAIE C,2
	JRST	[ADDM X,X0
		ADDM Y,Y0
		SOJA N,SLOOP]
	PUSHJ P,MKLINE
LX1:	SOJA N,SLOOP

CHSIZS:	1.33
	1.9999
	2.34
	2.67
	4.01
	5.33
	8.13

BEND DDCODE
BEGIN CHRTBL
stdh←11
stdw←6
; Stroke table
; XWD <table address>,<number of strokes>
; table:	byte (5) pen,dx,dy

c1:	byte (5) 3,0,4,  2,2,-2,  2,2,2  3,-2,4,  2,0,-6, 3,4,-2
c2:	byte (5) 3,0,3,  2,0,2,  2,1,1,  2,1,0,  2,1,-1,  2,1,<1
		>,3,-1,-1,  2,0,-2,  2,1,-1,  3,-1,1,  2,-1,<-1
		>,2,-1,0,  2,-1,1,  3,6,-3
c3:	byte (5) 2,1,1,  2,0,4,  2,1,1,  2,2,0,  2,1,-1,  2,-1,<-1
		>,2,-3,0,  3,3,0,  2,1,-1,  2,-1,-1,  2,-3,0,  3,6,-2
c4:	byte (5) 3,0,4,  2,2,2,  2,2,-2,  3,2,-4
c5:	byte (5) 3,0,5,  2,4,0,  2,0,-1,  3,2,-4
c6:	byte (5) 3,1,4,  2,2,0,  3,0,2,  2,-1,0,  2,-1,-1,  2,0,<-2
		>,2,1,-1,  2,1,0,  3,3,-2
c7:	byte (5) 3,1,2,  2,0,4,  3,-1,0,  2,4,0,  3,-1,0,  2,0,<-4
		>,3,3,-2
c10:	byte (5) 3,0,2,  2,2,2,  3,-2,3,  2,0,-1,  2,4,-4, 3,2,-2
c12:	byte (5) 3,0,-stdh
c13:	byte (5) 3,0,2,  2,1,-1,  2,1,1,  2,0,5,  2,1,1,  2,1,-1,  3,2,-7
c14:	byte (5) 3,0,3,  2,4,0,  3,0,3,  2,-4,0,  3,2,2,  2,0,-4,  3,4,-4
c16:	byte (5) 3,1,3,  2,1,1,  2,0,1,  2,1,1,  2,1,<-1
		>,  2,0,-1,  2,-1,-1,  2,-1,1,  3,0,1,  2,-1,<1
		>,  2,-1,-1,  2,0,-1,  2,1,-1,  3,5,-3
c17:	byte (5) 3,0,3,  2,0,1,  2,1,1,  2,2,0,  2,1,<-1
		>,2,0,2,  2,-2,2,  2,-1,0,  3,3,-4,  2,0,<-1
		>,2,-1,-1,  2,-2,0,  2,-1,1,  3,6,-3
c20:	byte (5) 3,4,7,  2,-3,0,  2,-1,-1,  2,0,-2,  2,1,<-1
		>,2,3,0,  3,2,-3
c21:	byte (5) 3,0,3,  2,3,0,  2,1,1,  2,0,2,  2,-1,1,  2,-3,0,  3,6,-7
c22:	byte (5) 3,0,4,  2,0,2,  2,1,1,  2,2,0,  2,1,-1,  2,0,-2,  3,2,-4
c23:	byte (5) 3,0,7,  2,0,-2,  2,1,-1,  2,2,0,  2,1,1,  2,0,2,  3,2,-7
c24:	byte (5) 3,0,10,  2,2,-6,  2,2,6,  3,-1,-2,  2,-2,0,  3,5,-6
c25:	byte (5) 3,0,2,  2,4,0,  2,0,3,  2,-3,0,  3,-1,3,  2,4,<0
		>,2,0,-3,  3,2,-5
c26:	byte (5) 3,0,4,  2,0,2,  2,1,1,  2,2,0,  2,1,-1,  2,0,<-2
		>,2,-1,-1,  2,-2,0,  2,-1,1,  3,1,0,  2,2,2,  3,-2,0,  2,2,-2,  3,3,-4
c27:	byte (5) 3,2,0,  2,-2,2,  2,4,4,  2,-2,2,  3,-2,-2,  2,4,0,  3,-4,-4,  2,4,<0
		>,3,2,-2
c30:	byte (5) 2,4,0,  3,2,0
c31:	byte (5) 3,2,3,  2,2,2,  2,-2,2,  3,-2,-2,  2,4,0,  3,2,-5
c32:	byte (5) 3,0,10,  2,1,1,  2,1,0,  2,0,-1,  2,1,0,  2,1,1,  3,2,-11
c33:	byte (5) 3,0,1,  2,4,6,  3,0,-2,  2,-4,0,  3,0,-2,  2,4,0,  3,2,-2
c34:	byte (5) 3,1,2,  2,2,0,  3,0,2,  2,-2,2,  2,2,2,  3,3,-10
c35:	byte (5) 3,1,2,  2,2,0,  3,-2,2,  2,2,2,  2,-2,2,  3,5,-10
c36:	byte (5) 3,0,3,  2,4,0,  3,0,2,  2,-4,0,  3,0,2,  2,4,0,  3,2,-7
c37:	byte (5) 3,0,6,  2,2,-2,  2,2,2,  3,2,-6
c40:	byte (5) 3,stdw,0
c41:	byte (5) 3,2,1,  2,0,1,  3,0,2,  2,0,4,  3,4,-10
c42:	byte (5) 3,1,7,  2,0,2,  3,2,0,  2,0,-2,  3,3,-7
c43:	byte (5) 3,1,2,  2,0,5,  3,2,0,  2,0,-5,  3,1,1,  2,-4,0,  3,0,<3
		>,2,4,0,  3,2,-6
c44:	byte (5) 3,2,1,  2,0,10,  3,2,-2,  2,-1,1,  2,-2,0,  2,-1,<-1
		>,2,0,-1,  2,1,-1,  2,2,0,  2,1,-1,  2,0,-2,  2,-1,<-1
		>,2,-2,0,  2,-1,1,  3,6,-3
c45:	byte (5) 3,0,2,  2,0,1,  2,4,4,  2,0,1,  3,-3,0,  2,-1,<0
		>,2,0,-1,  2,1,0,  2,0,1,  3,3,-5,  2,1,0,  2,0,<-1
		>,2,-1,0,  2,1,0,  3,3,-1
c46:	byte (5) 3,4,4,  2,-2,-2,  2,-1,0,  2,-1,1,  2,0,1,  2,2,2,  2,0,<1
		>,2,-1,1,  2,-1,-1,  2,0,-1,  2,4,-4,  3,2,-2
c47:	byte (5) 3,0,7,  2,1,1,  2,0,1,  2,1,0,  2,0,-1,  2,-1,0,  3,5,-7
c50:	byte (5) 3,4,2,  2,-2,2,  2,0,2,  2,2,2,  3,2,-10
c51:	byte (5) 3,0,2,  2,2,2,  2,0,2,  2,-2,2,  3,6,-10
c52:	byte (5) 3,2,2,  2,0,6,  3,-2,-1,  2,4,-4,  3,0,2,  2,-4,<0
		>,3,0,-2,  2,4,4,  3,2,-7
c53:	byte (5) 3,2,3,  2,0,4,  3,-2,-2,  2,4,0,  3,2,-5
c54:	byte (5) 3,0,1,  2,1,1,  2,0,1,  3,5,-3
c55:	byte (5) 3,0,5,  2,4,0,  3,2,-5
c56:	byte (5) 3,1,2,  0,1,0,  3,4,-2
c57:	byte (5) 3,0,3,  2,4,4,  3,2,-7
c60:	byte (5) 3,0,3,  2,4,4,  2,-1,1,  2,-2,0,  2,-1,-1,  2,0,<-4
		>,2,1,-1,  2,2,0,  2,1,1,  2,0,4,  3,2,-7
c61:	byte (5) 3,1,2,  2,2,0,  3,-1,0,  2,0,6,  2,-1,-1,  3,5,-7
c62:	byte (5) 3,0,7,  2,1,1,  2,2,0,  2,1,-1,  2,0,-1,  2,-4,-4,  2,4,0,  3,2,-2
c63:	byte (5) 3,0,3,  2,1,-1,  2,2,0,  2,1,1,  2,0,1,  2,-1,1,  2,-1,<0
		>,3,1,0,  2,1,1,  2,0,1,  2,-1,1,  2,-2,0,  2,-1,-1,  3,6,-7
c64:	byte (5) 3,3,2,  2,0,6,  2,-3,-3,  2,0,-1,  2,4,0,  3,2,-4
c65:	byte (5) 3,0,3,  2,1,-1,  2,2,0,  2,1,1,  2,0,2,  2,-1,1,  2,-3,<0
		>,2,0,2,  2,4,0,  3,2,-10
c66:	byte (5) 3,0,5,  2,0,-2,  2,1,-1,  2,2,0,  2,1,1,  2,0,1,  2,-1,1,  2,-3,<0
		>,2,0,1,  2,2,2,  2,1,0,  3,3,-10
c67:	byte (5) 3,0,10,  2,4,0,  2,-2,-4,  2,0,-2,  3,4,-2
c70:	byte (5) 3,1,5,  2,-1,-1,  2,0,-1,  2,1,-1,  2,2,0,  2,1,<1
		>,2,0,1,  2,-1,1,  2,-2,0,  2,-1,1,  2,0,1,  2,1,<1
		>,2,2,0,  2,1,-1,  2,0,-1,  2,-1,-1,  3,3,-5
c71:	byte (5) 3,1,2,  2,1,0,  2,2,2,  2,0,3,  2,-1,1,  2,-2,0,  2,-1,<-1
		>,2,0,-1,  2,1,-1,  2,3,0,  3,2,-5
c72:	byte (5) 3,0,3,  2,1,0,  3,0,3,  2,-1,0,  3,6,-6
c73:	byte (5) 3,0,1,  2,1,1,  2,0,1,  3,0,3,  2,-1,0,  3,6,-6
c74:	byte (5) 3,3,3,  2,-2,2,  2,2,2,  3,3,-7
c75:	byte (5) 3,0,4,  2,4,0,  3,0,2,  2,-4,0,  3,6,-6
c76:	byte (5) 3,1,7,  2,2,-2,  2,-2,-2,  3,5,-3
c77:	byte (5) 3,1,2,  2,1,0,  3,0,2,  2,0,1,  2,2,2,  2,-1,1,  2,-2,<0
		>,2,-1,-1,  3,6,-7
c100:	byte (5) 3,3,2,  2,-2,0,  2,-1,1,  2,0,4,  2,1,1,  2,2,0,  2,1,<-1
		>,2,0,-3,  2,-2,0,  2,0,2,  2,2,0,  3,2,-6
c101:	byte (5) 3,0,2,  2,0,5,  2,1,1,  2,2,0,  2,1,-1,  2,0,-5,  3,-4,3,  2,4,0,  3,2,-5
c102:	byte (5) 3,0,2,  2,3,0,  2,1,1,  2,0,1,  2,-1,1,  2,-3,0,  3,3,<0
		>,2,1,1,  2,0,1,  2,-1,1,  2,-3,0,  2,0,-6,  3,6,-2
c103:	byte (5) 3,4,7,  2,-1,1,  2,-2,0,  2,-1,-1,  2,0,-4,  2,1,-1,  2,2,0,  2,1,1,  3,2,-3
c104:	byte (5) 3,0,2,  2,3,0,  2,1,1,  2,0,4,  2,-1,1,  2,-3,0,  3,1,0,  2,0,-6,  3,5,-2
c105:	byte (5) 3,4,2,  2,-4,0,  2,0,6,  2,4,0,  3,-1,-3,  2,-3,0,  3,6,-5
c106:	byte (5) 3,0,2,  2,0,6,  2,4,0,  3,-1,-3,  2,-3,0,  3,6,-5
c107:	byte (5) 3,3,4,  2,1,0,  2,0,-1,  2,-1,-1,  2,-2,0,  2,-1,<1
		>,2,0,4,  2,1,1,  2,2,0,  2,1,-1,  3,2,-7
c110:	byte (5) 3,0,2,  2,0,6,  3,0,-3,  2,4,0,  3,0,3,  2,0,-6,  3,2,-2
c111:	byte (5) 3,1,2,  2,2,0,  3,-1,0,  2,0,6,  3,-1,0,  2,2,0,  3,3,-10
c112:	byte (5) 3,0,3,  2,1,-1,  2,2,0,  2,1,1,  2,0,5,  3,2,-10
c113:	byte (5) 3,0,2,  2,0,6,  3,4,0,  2,-3,-3,  2,3,-3,  3,4,-2
c114:	byte (5) 3,0,10,  2,0,-6,  2,4,0,  3,2,-2
c115:	byte (5) 3,0,2,  2,0,6,  2,2,-2,  2,2,2,  2,0,-6,  3,2,-2
c116:	byte (5) 3,0,2,  2,0,6,  2,4,-6,  2,0,6,  3,2,-10
c117:	byte (5) 3,0,3,  2,0,4,  2,1,1,  2,2,0,  2,1,-1,  2,0,-4,  2,-1,-1,  2,-2,0,  2,-1,1,  3,6,-3
c120:	byte (5) 3,0,2,  2,0,6,  2,3,0,  2,1,-1,  2,0,-1,  2,-1,-1,  2,-3,0,  3,6,-5
c121:	byte (5) 3,0,3,  2,0,4,  2,1,1,  2,2,0,  2,1,-1,  2,0,-3,  2,-2,<-2
		>,2,-1,0,  2,-1,1,  3,2,2,  2,2,-2,  3,2,-3
c122:	byte (5) 3,0,2,  2,0,6,  2,3,0,  2,1,-1,  2,0,-1,  2,-1,-1,  2,-3,<0
		>,3,1,0,  2,3,-3,  3,2,-2
c123:	byte (5) 3,4,7,  2,-1,1,  2,-2,0,  2,-1,-1,  2,0,-1,  2,1,-1,  2,2,<0
		>,2,1,-1,  2,0,-1,  2,-1,-1,  2,-2,0,  2,-1,1,  3,6,-3
c124:	byte (5) 3,0,10,  2,4,0,  3,-2,0,  2,0,-6,  3,4,-2
c125:	byte (5) 3,0,3,  2,0,5,  3,4,0,  2,0,-5,  2,-1,-1,  2,-2,0,  2,-1,1,  3,6,-3
c126:	byte (5) 3,0,10,  2,0,-3,  2,2,-3,  2,2,3,  2,0,3,  3,2,-10
c127:	byte (5) 3,0,2,  2,0,6,  3,4,0,  2,0,-6,  2,-2,2,  2,-2,-2,  3,6,-2
c130:	byte (5) 3,0,2,  2,4,6,  3,-4,0,  2,4,-6,  3,2,-2
c131:	byte (5) 3,2,2,  2,0,3,  2,-2,3,  3,4,0,  2,-2,-3,  3,4,-5
c132:	byte (5) 3,0,10,  2,4,0,  2,-4,-6,  2,4,0,  3,2,-2
c133:	byte (5) 3,3,1,  2,-2,0,  2,0,10,  2,2,0,  3,3,-11
c134:	byte (5) 3,0,7,  2,4,-4,  3,2,-3
c135:	byte (5) 3,1,11,  2,2,0,  2,0,-10,  2,-2,0,  3,5,-1
c136:	byte (5) 3,2,2,  2,0,6,  3,-2,-2,  2,2,2,  2,2,-2,  3,2,-6
c137:	byte (5) 3,2,3,  2,-2,2,  2,2,2,  3,-2,-2,  2,4,0,  3,2,-5
c140:	byte (5) 3,3,10,  2,-1,0,  2,0,1,  2,1,0,  2,0,-1,  2,1,-1,  3,2,-7
c141:	byte (5) 3,1,6,  2,2,0,  2,1,-1,  2,0,-3,  2,-3,0,  2,-1,1,  2,1,<1
		>,2,3,0,  3,2,-4
c142:	byte (5) 3,0,10,  2,0,-6,  2,3,0,  2,1,1,  2,0,2,  2,-1,1,  2,-3,0,  3,6,-6
c143:	byte (5) 3,4,5,  2,-1,1,  2,-2,0,  2,-1,-1,  2,0,-2,  2,1,-1,  2,3,0,  3,2,-2
c144:	byte (5) 3,4,10,  2,0,-6,  2,-3,0,  2,-1,1,  2,0,2,  2,1,1,  2,3,0,  3,2,-6
c145:	byte (5) 3,3,2,  2,-2,0,  2,-1,1,  2,0,2,  2,1,1,  2,2,0,  2,1,<-1
		>,2,-1,-1,  2,-3,0,  3,6,-4
c146:	byte (5) 3,1,2,  2,0,5,  2,1,1,  2,1,0,  2,1,-1,  3,-2,-2,  2,-2,0,  3,6,-5
c147:	byte (5) 3,1,0,  2,2,0,  2,1,1,  2,0,4,  2,-1,1,  2,-2,0,  2,-1,<-1
		>,2,0,-2,  2,1,-1,  2,3,0,  3,2,-2
c150:	byte (5) 3,0,2,  2,0,6,  3,0,-2,  2,3,0,  2,1,-1,  2,0,-3,  3,2,-2
c151:	byte (5) 3,2,2,  2,0,3,  3,0,1,  2,0,1,  3,4,-7
c152:	byte (5) 3,0,1,  2,1,-1,  2,2,0,  2,1,1,  2,0,4,  3,0,1,  2,0,1,  3,2,-7
c153:	byte (5) 3,0,2,  2,0,6,  3,4,-2,  2,-2,-2,  2,-2,0,  3,2,0,  2,2,-2,  3,2,-2
c154:	byte (5) 3,1,2,  2,0,6,  3,5,-10
c155:	byte (5) 3,0,2,  2,0,4,  2,1,0,  2,1,-1,  2,1,1,  2,1,-1,  2,0,-4,  3,-2,0,  2,0,4,  3,4,-5
c156:	byte (5) 3,0,2,  2,0,4,  2,1,-1,  2,1,1,  2,1,0,  2,1,-1,  2,0,-3,  3,2,-2
c157:	byte (5) 3,0,3,  2,0,2,  2,1,1,  2,2,0,  2,1,-1,  2,0,-2,  2,-1,-1,  2,-2,0,  2,-1,1,  3,6,-3
c160:	byte (5) 2,0,6,  2,3,0,  2,1,-1,  2,0,-2,  2,-1,-1,  2,-3,0,  3,6,-2
c161:	byte (5) 3,4,2,  2,-3,0,  2,-1,1,  2,0,2,  2,1,1,  2,2,0,  2,1,-1,  2,0,-5,  3,2,0
c162:	byte (5) 3,0,2,  2,0,4,  3,0,-2,  2,2,2,  2,1,0,  2,1,-1,  3,2,-5
c163:	byte (5) 3,0,2,  2,3,0,  2,1,1,  2,-1,1,  2,-2,0,  2,-1,1,  2,1,1,  2,3,0,  3,2,-6
c164:	byte (5) 3,0,6,  2,4,0,  3,-2,2,  2,0,-5,  2,1,-1,  2,1,0,  3,2,-2
c165:	byte (5) 3,0,6,  2,0,-3,  2,1,-1,  2,2,0,  2,1,1,  2,0,3,  3,2,-6
c166:	byte (5) 3,0,6,  2,0,-2,  2,2,-2,  2,2,2,  2,0,2,  3,2,-6
c167:	byte (5) 3,0,6,  2,0,-3,  2,1,-1,  2,1,1,  2,1,-1,  2,1,1,  2,0,3,  3,2,-6
c170:	byte (5) 3,0,2,  2,4,4,  3,-4,0,  2,4,-4,  3,2,-2
c171:	byte (5) 2,4,4,  2,0,2,  3,-4,0,  2,0,-2,  2,2,-2,  3,4,-2
c172:	byte (5) 3,0,6,  2,4,0,  2,-4,-4,  2,4,0,  3,2,-2
c173:	byte (5) 3,4,11,  2,-1,-1,  2,0,-2,  2,-1,-1,  2,1,-1,  2,0,-2,  2,1,-1,  3,2,-1
c174:	byte (5) 3,2,11,  2,0,-11,  3,4,0
c175:	byte (5) 3,2,2,  2,0,1,  2,-2,2,  2,2,2,  2,0,1,  3,0,-1,  2,2,<-2
		>,2,-2,-2,  3,4,-3
c176:	byte (5) 3,0,11,  2,1,-1,  2,0,-2,  2,1,-1,  2,-1,-1,  2,0,-2,  2,-1,-1,  3,6,-1

↑CHRTBL:	0
	xwd c1,6
	xwd c2,16
	xwd c3,14
	xwd c4,4
	xwd c5,4
	xwd c6,11
	xwd c7,7
	xwd c10,6
	0
	xwd c12,1
	xwd c13,7
	xwd c14,7
	0
	xwd c16,16
	xwd c17,16
	xwd c20,7
	xwd c21,7
	xwd c22,7
	xwd c23,7
	xwd c24,6
	xwd c25,10
	xwd c26,16
	xwd c27,11
	xwd c30,2
	xwd c31,6
	xwd c32,7
	xwd c33,7
	xwd c34,6
	xwd c35,6
	xwd c36,7
	xwd c37,4
	xwd c40,1
	xwd c41,5
	xwd c42,5
	xwd c43,11
	xwd c44,17
	xwd c45,17
	xwd c46,14
	xwd c47,7
	xwd c50,5
	xwd c51,5
	xwd c52,11
	xwd c53,5
	xwd c54,4
	xwd c55,3
	xwd c56,3
	xwd c57,3
	xwd c60,13
	xwd c61,6
	xwd c62,10
	xwd c63,16
	xwd c64,6
	xwd c65,12
	xwd c66,14
	xwd c67,5
	xwd c70,21
	xwd c71,13
	xwd c72,5
	xwd c73,6
	xwd c74,4
	xwd c75,5
	xwd c76,4
	xwd c77,11
	xwd c100,14
	xwd c101,11
	xwd c102,15
	xwd c103,11
	xwd c104,11
	xwd c105,7
	xwd c106,6
	xwd c107,13
	xwd c110,7
	xwd c111,7
	xwd c112,6
	xwd c113,6
	xwd c114,4
	xwd c115,6
	xwd c116,5
	xwd c117,12
	xwd c120,10
	xwd c121,14
	xwd c122,12
	xwd c123,15
	xwd c124,5
	xwd c125,10
	xwd c126,6
	xwd c127,7
	xwd c130,5
	xwd c131,6
	xwd c132,5
	xwd c133,5
	xwd c134,3
	xwd c135,5
	xwd c136,6
	xwd c137,6
	xwd c140,7
	xwd c141,11
	xwd c142,10
	xwd c143,10
	xwd c144,10
	xwd c145,12
	xwd c146,10
	xwd c147,13
	xwd c150,7
	xwd c151,5
	xwd c152,10
	xwd c153,10
	xwd c154,3
	xwd c155,12
	xwd c156,10
	xwd c157,12
	xwd c160,7
	xwd c161,11
	xwd c162,7
	xwd c163,11
	xwd c164,7
	xwd c165,7
	xwd c166,6
	xwd c167,10
	xwd c170,5
	xwd c171,6
	xwd c172,5
	xwd c173,10
	xwd c174,3
	xwd c175,11
	xwd c176,10
	0

BEND CHRTBL
end